package sail.lbps.poi;

import java.util.List;

import sail.lbps.info.Information;
import sail.lbps.point.Point;

public interface PointOwnerFunction {

	/**
	 * @stereotype parameter
	 */

	/* #sail.lbps.poi.PointOwner lnkPointOwner */

	public String createPointOwner();

	public void deletePointOwner();

	public PointOwner getPointOwner(String ownerId);

	public boolean existPointOwner(String ownerId);

	/**
	 * 在a,b,c,d所围矩形区域内，有参考点的PointOwners。比如在某矩形区域内，KFC、McDonald、国美有店面，国航、
	 * 中国银行有业务网点、北京消防中队有个支队驻地等，则返回的PointOwner List就是[KFC, MacDonald, 国美, 国航,
	 * 中国银行, 北京消防中队]。
	 * 
	 * @param a
	 * @param b
	 * @param c
	 * @param d
	 * @return
	 */
	public List<PointOwner> hasPointInRect(Point a, Point b, Point c, Point d);

	/**
	 * 满足Information所携带信息的PointOwner。比如“是否24小时服务”、“可以吸烟”、“快餐食品”、“房屋租赁”、“是否在西单附近”
	 * 等条件信息。
	 * 
	 * @param info
	 * @return
	 */
	public List<PointOwner> carePointInfo(Information info);

	/**
	 * 同时满足矩形和信息条件的PointOwners。
	 * 
	 * @param a
	 * @param b
	 * @param c
	 * @param d
	 * @param info
	 * @return
	 */
	public List<PointOwner> hasPointInRectAndCareInfo(Point a, Point b,
			Point c, Point d, Information info);

}
